package com.gxa.mapper;

import com.gxa.pojo.GoodsStorage;
import com.gxa.pojo.InStorage;
import com.gxa.pojo.InStorageGoods;
import com.gxa.pojo.Merchandise;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author 陈静
 * @date 2020/9/21 17:26
 */
public interface InStorageMapper {
    /**
     * 查询所有供应商名字
     * @return 供应商名字
     */
    List<Map<String,Object>> findSupplierName();
    /**
     * 查询所有仓库名字
     * @return 仓库名字
     */
    List<Map<String,Object>> findStoreName();

    /**
     *
     * @param
     * @return
     */
    List<InStorage> findInStorage(Map map);
    Integer countFindInStorage(Map<String,Object> map);

    /**
     *
     * @param start  起始页
     * @param pageSize  分页大小
     * @return
     */
    List<InStorage> findInStorageByPage(Integer start,Integer pageSize);

    /**
     * 返回总数据数
     * @return
     */
    Integer findAllInStorage();

    /**
     * 修改状态 0 待审批 1 已通过
     */
    Integer updateState(Map map);
    List<Map> findInStorageGoodss(Integer id);
    GoodsStorage findGoodsStorageByName(String name);
    Merchandise findMerchandiseByName(String name);
    Integer updateGoodsStorageStock(Double bStock,Double sStock,Integer id);
    Integer updateGoodsStorageStock2(Double bStock,Double sStock,Integer id);
    Integer updateGoodsStorageStock3(Integer bStock,Integer sStock,Integer id);
    Integer insertGoodsStorage(Map map);

    /**
     *  通过id查询对应的库存信息
     * @param id 参数 id
     * @return id对应的库存信息
     */
    InStorage findInStorageById(Integer id);

    /**
     *  通过库存id查询对应的商品信息
     * @param inStorageId 参数 库存id
     * @return
     */
    List<Map<String, Object>> findInStorageGoodsByInStorageId(Integer inStorageId);

    /**
     *  查询所有的品牌名
     * @return
     */
    List<Map<String,Object>> findBrandName();

    /**
     *  查询所有的分类名称
     * @return
     */
    List<Map<String,Object>> findLevelName();

    /**
     *  通过id删除库存信息
     * @param id 参数
     * @return 影响行数
     */
    Integer deleteInStorageById(Integer id);

    /**
     * 通过入库id删除对应的商品信息
     * @param id  入库id
     * @return 影响行数
     */
    Integer deleteInStorageGoodsByInStorageId(Integer id);

    /**
     * 插入入库信息
     * @param
     * @return
     */

    Integer insertInStorage(Map map);
    Integer findInStorageId();

    /**
     * 插入入库商品信息
     * @param
     * @return
     */
    Integer insertInStorageGoods(Map map);
//    GoodsStorage findGoodsStorageByName(String name);
//    Integer updateGoodsStorageStock(Integer bStock,Integer sStock,Integer id);
//    Integer insertGoodsStorage(Map map);

    /**
     * 根据品牌、分类查询商品信息
     * @param map 品牌 分类
     * @return
     */
    List<Map<String,Object>> findInStorageGoods(Map<String,Object> map);
    Integer countFindInStorageGoods(Map<String,Object> map);

    //全查询
    List<Map<String, Object>> findAllInStorages();
    Integer countFindAllInStorages();
    Integer insertOut(int i, Date date);

    /**
     *  更新入库信息
     * @param map
     * @return
     */
    Integer updateInStorage(Map map);
    Integer deleteInStorageGoods(Map map);
    Integer insertInStorageGoodsByInStorageId(Map map);


    /**
     *  更新入库商品信息
     * @param map
     * @return
     */
    Integer updateInStorageGoods(Map map);

}
